<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    <title>p66-72路由</title>
    <style>
        /* .router-link-active{
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
        } */
        .myclass{
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
        }
        .v-enter,.v-leave-to{
            opacity: 0;
            transform: translateX(15px);
        }
        .v-enter-active,.v-leave-active{
            transition: ease all 1s;
        }
    </style>
</head>
<body>
    <div id="app">
        <!-- <a href="#/login">登录</a>
        <a href="#/register">注册</a> -->
        <router-link to="/login" tag="span">登录</router-link>
        <router-link to="/register" tag="span">注册</router-link>
        <!-- 这是vue-router提供的元素，专门用来当做占位符的，将来，路由规则匹配到的组件就会展示到这个view-router中去 -->
        <!-- 所以我们可以把<router-view></router-view>认为是一个占位符 -->
        <transition mode="out-in">
                <router-view></router-view>
        </transition>
    </div>
    <script>
        var login={
            template:"<h1>这是登录组件</h1>"
        }
        var register={
            template:"<h1>这是注册组件</h1>"
        }
        //创建一个路由对象，当导入vue-router包后，在windows全局对象中，就有了一个路由的构造函数叫VueRouter
        //在new路由对象的时候，可以为构造函数传递一个参数
        var routerObj=new VueRouter({
            // route这个配置对象中的router表示【路由匹配规则的意思】
            routes:[
                // 每个路由规则都是一个对象这个规则身上，有两个必须的属性：
                // 属性1是path：表示监听哪个路由链接地址
                // 属性2是component：表示如果路由是前面匹配到的path，则展示component属性对应的那个组件
                // 注意component的属性值必须是一个组件模板对象，不能是组件的引用名称
                {path:"/",redirect:"/login"},
                {path:"/login",component:login},
                {path:"/register",component:register}
            ],
            linkActiveClass:"myclass"
        })
        var vm=new Vue({
            el:"#app",
            data:{},
            methods:{},
            filters:{},
            directives:{},
            components:{},
            router:routerObj
        })
    </script>
</body>
</html>